# -*- coding: utf-8 -*-
"""
Created on Fri Aug 18 14:21:32 2023

@author: skunk69
"""

import json

chinese_name = u'大学生一般学业情绪问卷'
english_name = 'General Academic Emotion Questionnaire Of College Students'
abbreviation = 'GAEQ'
category = u'学习与教育量表'

outline = u"""学业情绪是德国教育心理学家Pekrun于2002年提出的一个新概念，它是指在教学与学习过程中，与学生学业活动相关的各种情绪体验。学生的学习，尤其是大学生的学习，不仅是一种积累知识、经验和增长技能、培养能力的过程，更是一种创造性的学习过程。而教育应该以人为本，根据学生的心理需求，使学生怀着希望去学习，让学生在愉快中学习，主动探索并进一步激发他们学习的兴趣与热情，从而避免枯燥乏味，并进而厌烦学习的情绪产生。
《大学生一般学业情绪问卷》由马惠霞于2008年编制。该问卷以Pekrun等的学业情绪理论为基础。该问卷包括学生在学业活动中最常体验到的10种情绪，包括兴趣、愉快、自豪、希望、放松、气愤、焦虑、羞愧、失望、厌烦，即学业情绪。本问卷所概括的情境包括了大学生学业活动的各个领域，所编制的项目都是一般性的，而不是情境特异性的（如考试、课堂、课程等）。"""

instruction = u"""这是一份关于大学生学业情绪的问卷。下面是一些描述学习活动中可能有的情绪体验项目。请您对照每一个项目，在最符合自己实际情况的选项中选择一项。答案无对错之分，请您认真作答。"""

with open('GAEQ.txt','r',encoding='utf-8') as f:
    lines = f.readlines()
    f.close()

items = {}
for num,line in enumerate(lines):
    key,value = line.strip().split('.',maxsplit=1)
    items[key.strip()] = value.strip()

reverse_items = []
scales = [u'焦虑',u'厌烦',u'放松',u'失望',u'自豪',u'羞愧',u'愉快',u'希望',
          u'气愤',u'兴趣']
scales_items = [
    [1,11,21,31,41,51,59,67,72,77,81,83,85,87,88],# 焦虑
    [2,12,22,32,42,52,60,68,73,78,82,84,86],# 厌烦
    [3,13,23,33,43,53,61,69,74,79],# 放松
    [4,14,24,34,44,54,62,70,75,80],# 失望
    [5,15,25,35,45,55,63,71,76],# 自豪
    [6,16,26,36,46,56,64],# 羞愧
    [7,17,27,37,47,57,65],# 愉快
    [8,18,28,38,48,58,66],# 希望
    [9,19,29,39,49],# 气愤
    [10,20,30,40,50],# 兴趣
    ]

# check scales_items
print(f'scale length={[len(l) for l in scales_items]}')

check = []
for l in scales_items:
    check = check+l
print(f'len(check)={len(check)}')

# complementary set
check_set = {i for i in sorted(check)}^{i for i in range(1,89)}
print(f'complementary set= {check_set}')

factors = [u'消极高唤醒',u'积极高唤醒',u'消极低唤醒',u'积极低唤醒']
factors_scales = [
    [u'羞愧',u'焦虑',u'气愤'],
    [u'兴趣',u'愉快',u'希望'],
    [u'失望',u'厌烦'],
    [u'自豪',u'放松'],    
    ]
rating = [u'完全不符合',u'不太符合',u'不肯定',u'比较符合',u'完全符合']
score_rules = list(range(1,6))

contents = {
    'instruction':instruction,
    'items':items,
    'reverse_items':reverse_items,
    'scales':scales,
    'scales_items':scales_items,
    'factors':factors,
    'factors_scales':factors_scales,
    'rating':rating,
    'score_rules':score_rules       
    }

implementation = u"""《大学生一般学业情绪问卷》为一个自评量表。"""

reliability = u"""正式样本为某师范大学大二大学生群体。该问卷及各分量表的α系数在0.641~0.887，重测信度在0.563~0.866。"""
validity = u"""在结构效度方面，采用探索性因素分析方法进行考察，确定了问卷中的10个分量表分属于四个因子。从问卷各分量表的相关性看问卷的结构效度，结果显示，各分量表之间的相关，除失望和焦虑、厌烦2个分量表之间的相关较高外，其他为中低度相关（P<0.01）。
在效标效度方面，以陈文锋、张建新修订的积极/消极情感量表和方晓义、沃建中编制的中国大学生适应量表为效标进行考察。结果显示，该问卷与两个参照量表的总分呈中度相关（P<0.01）。"""
measurements = {'reliability':reliability,'validity':validity}

interpretation = u"""将各维度题目相加得到各维度分，由各因子的相应维度分之和得到各因子分，所有题目之和为总分。"""

applications = u"""实际应用效果有待后续研究的证实。"""

this_scale = {
    'chinese_name':chinese_name,
    'english_name':english_name,
    'abbreviation':abbreviation,
    'category':category,
    'outline':outline,
    'contents':contents,
    'implementation':implementation,
    'measurements':measurements,
    'interpretation':interpretation,
    'applications':applications    
    }

with open(abbreviation+'.json','w+',encoding='utf-8') as f:
    json.dump(this_scale,f,indent=2,ensure_ascii=False)